package com.wsd.service;

import com.cif.common.Result;
import com.cif.service.domain.AccountInfoDTO;
import com.cif.service.domain.ContacterDTO;
import com.cif.service.domain.CustomerDTO;

import java.math.BigDecimal;
import java.util.List;

public interface ICifService {

    /**
     * 获取所有用户信息（用户信息列表）
     *
     * @param pageNo   第几页
     * @param pageSize 一共多少页
     * @return
     */
    public Result getCustomerInfoList(int pageNo, int pageSize);

    /**
     * 根据用户状态获取用户信息（三种状态：正常、短期逾期、长期逾期）
     *
     * @param pageNo
     * @param pageSize
     * @param status
     * @return
     */
    public Result getCustomerInfoListByStatus(String status,int pageSize,int pageNo);

    /**
     * 根据用户id获取用户信息
     * @param userId
     * @return
     */
    public Result getCustomerById(String userId);

    /**
     * 用户注册
     * @param customer
     * @param contacter
     * @return 用户id
     */
    public Result register(CustomerDTO customer, ContacterDTO contacter);

    /**
     * 更新用户信息
     * @param customer
     * @return
     */
    public Result updateCustomer(CustomerDTO customer);

    /**
     * 批量插入联系人
     *
     * @param contacterList
     * @return
     */
    public int insertContacterBatch(List<ContacterDTO> contacterList);

    /**
     * 更新联系人
     *
     * @param contacter
     * @return
     */
    public Result updateContacter(ContacterDTO contacter);


    /**
     * 根据卡号查询账户信息
     * @param cardNumber
     * @return
     */
    public Result getAccountInfo(String cardNumber);

    /**
     * 放款
     * @param userId
     * @param loanNumber
     * @return
     */
    public Result loanToAccount(Long userId, BigDecimal loanNumber);

    /**
     * 批量放款
     * @param list
     * @return
     */
    public Result loanBatch(List<AccountInfoDTO> list);
}
